import axios from "axios";
//@ts-ignore
import { ElMessage } from "element-plus";
import { useUserStore } from "@/store/modules/user";

// 创建axios实例
let request = axios.create({
    baseURL: "/api",
    timeout: 5000,
});

// 请求拦截器
request.interceptors.request.use((config) => {
    // 存储请求头的token，以完成请求
    let userStore = useUserStore();    
    config.headers.token = userStore.token;
    return config;
});

// 响应拦截器 响应成功和失败
request.interceptors.response.use(
    // 响应成功
    (response) => {
        // 返回简化数据
        return response.data;
    },
    // 响应失败
    (error) => {
        let msg = "";
        let status = error.response.status;
        switch (status) {
            case 401:
                msg = "token过期";
                break;
            case 403:
                msg = "无权访问";
                break;
            case 404:
                msg = "请求地址错误";
                break;
            case 500:
                msg = "服务器出现问题";
                break;
            default:
                msg = "无网络";
        }
        ElMessage({
            type: "error",
            message: msg,
        });

        return Promise.reject(error);
    }
);

export default request;
